import {showToast} from 'vant';
import {userStore} from '@/stores/user.js'

const getLocation = () => {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(locationSuccessCallBack, error)
        //检测结果存在地理定位对象的话，navigator.geolocation调用将返回该对象
        //第一个参数获取当前地理信息成功是执行的回调函数，带3个参数，
        //第一个参数是必写的，表示获取当前地理位置信息成功时所执行的回调函数，该函数参数position也是必须。
        //第二个参数是获取地理位置信息失败的回调函数，该函数的参数error也是必写的，第三个参数是一些可选属性列表（2、3个参数可省略）
    } else {
        clearInterval(timer)
        showToast('该游览器不支持获取定位信息')
    }
}

const locationSuccessCallBack = (position) => {
    const user = userStore()
    // showToast('定位获取成功')
    // console.log('定位获取成功', position)
    user.setPosition(position)
    useSessionStorage(position)
}

function error(error) {
    let err = error.code
    sessionStorage.setItem('position', null)
    switch (err) {
        case 1:
            clearInterval(timer)
            console.log("用户拒绝了位置服务");
            break;
        case 2:
            console.log("获取不到位置信息");
            break;
        case 3:
            console.log("获取信息超时");
    }
}

getLocation()
const timer = setInterval(() => {
    getLocation()
}, 5 * 60 * 1000)

const useSessionStorage = (position) => {
    const temp = {
        coords: {
            accuracy: position.coords.accuracy,
            altitude: position.coords.altitude,
            altitudeAccuracy: position.coords.altitudeAccuracy,
            heading: position.coords.heading,
            latitude: position.coords.latitude,
            longitude: position.coords.longitude,
            speed: position.coords.speed,
        },
        timestamp: position.timestamp
    }
    sessionStorage.setItem('position', JSON.stringify(temp))
}



